<template>
  <div class="profile">
    <!-- 标题，颜色设置为青绿色 -->
    <h2 style="color:#017d7d;">账号信息</h2>
    <!-- 表单组件 -->
    <el-form>
      <!-- 表单项，标签为“用户名” -->
      <el-form-item label="用户名">
        <!-- 输入框，绑定 user.username，设置为只读 -->
        <el-input v-model="user.username" readonly></el-input>
      </el-form-item>
      <!-- 表单项，标签为“角色” -->
      <el-form-item label="角色">
        <!-- 输入框，绑定 user.role，设置为只读 -->
        <el-input v-model="user.role" readonly></el-input>
      </el-form-item>
      <!-- 姓名表单项 -->
      <el-form-item label="姓名">
        <!-- 输出用户姓名 -->
        <span>{{ getFullName }}</span>
      </el-form-item>
      <!-- 性别表单项 -->
      <el-form-item label="性别">
        <!-- 输出用户性别 -->
        <span>{{ gender }}</span>
      </el-form-item>
      <!-- 年龄表单项 -->
      <el-form-item label="年龄">
        <!-- 输出用户年龄 -->
        <span>{{ age }}</span>
      </el-form-item>
    </el-form>
  </div>
</template>

<script>
import { mapState } from 'vuex';  // 从 Vuex 导入 mapState 函数

export default {
  computed: {
    // 使用 mapState 从 Vuex 状态中映射 user 到本组件的计算属性
    ...mapState(['user']),
    // 计算属性：获取用户的姓名
    getFullName() {
      // 如果用户角色为 admin，返回蒋启迪；如果用户角色为 staff，返回羊俊龙
      return this.user.role === 'admin' ? '蒋启迪' : '羊俊龙';
    },
    // 计算属性：获取用户的性别，都是男性
    gender() {
      return '男性';
    },
    // 计算属性：获取用户的年龄，都是 24 岁
    age() {
      return 24;
    }
  },
};
</script>

<style>
/* 配置 profile 组件的样式 */
.profile {
  max-width: 600px;  /* 最大宽度为 600 像素 */
  margin: 0 auto;    /* 水平居中 */
  padding: 20px;     /* 内边距 20 像素 */
}
</style>
